package top.jingles.tools.deploytool;

import top.jingles.tools.deploytool.controller.ArgsParser;
import top.jingles.tools.deploytool.controller.Deploy;
import top.jingles.tools.deploytool.entity.Args;

/**
 * deploytool
 *
 * 发布pom（和jar）到Maven仓库的工具（修改版）
 *
 * 工程说明：使用vscode管理，使用maven管理工程的依赖
 *
 * 待优化改进的问题：
 * 1. [FIXED]发布到的仓库ID和URL定死的（thirdpart）
 * 2. [FIXED（暂时通过外部删除此类文件）]如果目录下有maven-metadata-xxxxx.xml，会导致该目录下的子目录不再被扫描和提交
 * 3. [FIXED]如果pom文件中的版本号带着变量信息，提交到仓库时会有问题
 *    （例如：org.apache.flink.flink-shaded-asm包的${asm.version}-5.0这个版本）
 *    （经测和maven-deploy-plugin插件版本无关，2.7、2.8.2、3.0.0-M1都试过了）
 * 4. [FIXED（允许指定mvn的路径）]没有检测mvn工具是否存在
 * 5. 对于快照类型的支持不一定会好（该问题待确认）
 * 6. **发布过程中跳过的包没有打印日志（失败的包打印日志了）
 * 7. ***不支持提交无pom文件的jar包
 * 8. ****不支持发布带classifier的jar包
 *
 * @author yanjingtu
 * @since 2019/2/28.
 */
public class App {
    public static void main(String[] args) {
        Args argsObj = (new ArgsParser()).Parse(args);
        if (!argsObj.isValid()) {
            return;
        }
        
        Deploy deployObj = new Deploy();
        if (argsObj.getPath().length() > 0) {
            deployObj.dealAll(argsObj);
        }
    }
}